package com.ruicar.afs.cloud.manage.common.entity;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ruicar.afs.cloud.common.core.entity.BaseEntity;
import com.ruicar.afs.cloud.common.modules.contract.enums.BusinessSourceEnum;
import com.ruicar.afs.cloud.common.modules.contract.enums.ContractStatusEnum;
import com.ruicar.afs.cloud.common.modules.contract.enums.DataSourceEnum;
import com.ruicar.afs.cloud.common.modules.contract.enums.ProcessStatusEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * @author: Lee
 * @date 2020-05-30 09:21:16 
 * @description 合同银行卡变更申请表
 */
@Data
@Accessors(chain = true)
@TableName(value ="manage_bank_card_change", autoResultMap = true)
public class ManageBankCardChange extends BaseEntity<ManageBankCardChange> {
	/** 渠道id */
	@ApiModelProperty("渠道id")
	@JsonSerialize(using = ToStringSerializer.class)
	@JSONField(serializeUsing = com.alibaba.fastjson.serializer.ToStringSerializer.class)
	private Long channelId;
	/** 合同号码 */
	@ApiModelProperty("合同号码")
	private String contractNo;
	/** 案件编号 */
	@ApiModelProperty("案件编号")
	private String caseNo;
	/** 数据来源 枚举值：CMS、多品系统 */
	@ApiModelProperty("数据来源 枚举值：CMS、多品系统")
	private DataSourceEnum dataSource;
	/** 原持卡人 */
	@ApiModelProperty("原持卡人")
	private String oldCardholder;
	/** 新持卡人 */
	@ApiModelProperty("新持卡人")
	private String newCardholder;
	/** 原还款银行 */
	@ApiModelProperty("原还款银行")
	private String oldBank;
	/** 新还款银行 */
	@ApiModelProperty("新还款银行")
	private String newBank;
	/** 原分支行 */
	@ApiModelProperty("原分支行")
	private String oldBranchBank;
	/** 新分支行 */
	@ApiModelProperty("新分支行")
	private String newBranchBank;
	/** 原银行账号 */
	@ApiModelProperty("原银行账号")
	private String oldBankAccount;
	/** 新银行账号 */
	@ApiModelProperty("新银行账号")
	private String newBankAccount;
	/** 备注 */
	@ApiModelProperty("备注")
	private String remarks;
	/** 申请时间 */
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JSONField(format="yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty("申请时间")
	private Date applyDate;
	/** 结束时间 案件审批完成时间 */
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JSONField(format="yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty("结束时间 案件审批完成时间")
	private Date endDate;
	/** 处理状态 枚举值 */
	@ApiModelProperty("处理状态 枚举值")
	private ProcessStatusEnum processStatus;
	/** 申请编号 */
	@ApiModelProperty("申请编号")
	private String applyNo;
	/** 客户姓名 */
	@ApiModelProperty("客户姓名")
	private String custName;
	/** 证件号码 */
	@ApiModelProperty("证件号码")
	private String certNo;
	/** 联系方式号码 */
	@ApiModelProperty("联系方式号码")
	private String contactNo;
	/** 合同状态 */
	@ApiModelProperty("合同状态")
	private ContractStatusEnum contractStatus;
	/** 渠道类型 */
	@ApiModelProperty("渠道类型")
	private String channelType;
	/** 主体类型 */
	@ApiModelProperty("主体类型")
	private String mainType;
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@JSONField(format="yyyy-MM-dd")
	@ApiModelProperty("合同激活时间")
	private Date startDate;
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@JSONField(format="yyyy-MM-dd")
	@ApiModelProperty("派单时间")
	private Date dispatchTimes;

	@ApiModelProperty("签约状态")
	private String signStutas;

	@ApiModelProperty("签约结果")
	private String signResult;

	@ApiModelProperty("签约地点")
	private String signSite;

	@ApiModelProperty("所在省份")
	private String province;

	@ApiModelProperty("所在城市")
	private String city;
	@ApiModelProperty("所在省份")
	private String oldProvince;

	@ApiModelProperty("所在城市")
	private String oldCity;
	@ApiModelProperty("申请人")
	private String applyBy;
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@JSONField(format="yyyy-MM-dd")
	@ApiModelProperty("证件开始时间")
	private Date certStartDate;
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@JSONField(format="yyyy-MM-dd")
	@ApiModelProperty("证件结束时间")
	@TableField(value = "cert_end_date",updateStrategy = FieldStrategy.IGNORED)
	private Date certEndDate;
	/**合同关闭时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@JSONField(format="yyyy-MM-dd")
	@ApiModelProperty("合同关闭时间")
	private Date closeDate;
	@ApiModelProperty("业务来源")
	private BusinessSourceEnum businessSource;
	@ApiModelProperty("模板序号")
	private String templateNo;

}
